[XEN] Hide compile-time information values behind a
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Tue, 1 Aug 2006 14:28:09 +0000 (15:28 +0100)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Tue, 1 Aug 2006 14:28:09 +0000 (15:28 +0100)
functional interface, so that the values are contained
within a single object file.
Signed-off-by: Keir Fraser <keir@xensource.com>
20 files changed:
xen/Makefile
xen/Rules.mk
xen/arch/ia64/xen/dom_fw.c
xen/arch/ia64/xen/domain.c
xen/arch/ia64/xen/xensetup.c
xen/arch/powerpc/boot_of.c
xen/arch/powerpc/domain_build.c
xen/arch/powerpc/mpic_init.c
xen/arch/powerpc/ofd_fixup.c
xen/arch/powerpc/powerpc64/traps.c
xen/arch/x86/domain_build.c
xen/arch/x86/setup.c
xen/arch/x86/x86_32/traps.c
xen/arch/x86/x86_64/traps.c
xen/common/Makefile
xen/common/kernel.c
xen/common/version.c [new file with mode: 0644]
xen/drivers/char/Makefile
xen/drivers/char/console.c
xen/include/xen/version.h [new file with mode: 0644]

index 4279b0ef276c4d70419d97856d5690d95ae9f1cb..d9f5322eb648f3b1cca5463da29af575e5f864e9 100644 (file)
@@ -72,7 +72,7 @@ $(TARGET): delete-unfresh-files
 .PHONY: delete-unfresh-files
 delete-unfresh-files:
        @if [ ! -r include/xen/compile.h -o -O include/xen/compile.h ]; then \
-               rm -f include/xen/{banner,compile}.h; \
+               rm -f include/xen/compile.h; \
        fi
 
 # acm_policy.h contains security policy for Xen
@@ -91,7 +91,7 @@ include/xen/acm_policy.h:
 
 # compile.h contains dynamic build info. Rebuilt on every 'make' invocation.
 include/xen/compile.h: LANG=C
-include/xen/compile.h: include/xen/compile.h.in include/xen/banner.h
+include/xen/compile.h: include/xen/compile.h.in
        @sed -e 's/@@date@@/$(shell date)/g' \
            -e 's/@@time@@/$(shell date +%T)/g' \
            -e 's/@@whoami@@/$(shell whoami)/g' \
@@ -103,11 +103,7 @@ include/xen/compile.h: include/xen/compile.h.in include/xen/banner.h
            -e 's/@@extraversion@@/$(XEN_EXTRAVERSION)/g' \
            -e 's!@@changeset@@!$(shell ((hg parents || head -n 7 ../ChangeLog || echo date: unavailable) | awk '{FS="changeset:[ ]+"}/^changeset/{CS=$$2};{FS="date:[ ]+"}/^date/{D=$$2}; END {print D, CS}') 2>/dev/null)!g' \
            < include/xen/compile.h.in > $@.new
-       @cat include/xen/banner.h >> $@.new
-       @mv -f $@.new $@
-
-include/xen/banner.h:
-       tools/figlet/figlet -d tools/figlet Xen $(XEN_FULLVERSION) > $@.new
+       tools/figlet/figlet -d tools/figlet Xen $(XEN_FULLVERSION) >> $@.new
        @mv -f $@.new $@
 
 include/asm-$(TARGET_ARCH)/asm-offsets.h: arch/$(TARGET_ARCH)/asm-offsets.s
index 674e4a39bc22de4c77e5341238fd10748ae5775a..17a0eb04aaa0ff371d549e7b69dbfe3774f542a4 100644 (file)
@@ -43,7 +43,6 @@ include $(BASEDIR)/arch/$(TARGET_ARCH)/Rules.mk
 
 # Do not depend on auto-generated header files.
 HDRS := $(subst $(BASEDIR)/include/asm-$(TARGET_ARCH)/asm-offsets.h,,$(HDRS))
-HDRS := $(subst $(BASEDIR)/include/xen/banner.h,,$(HDRS))
 HDRS := $(subst $(BASEDIR)/include/xen/compile.h,,$(HDRS))
 
 # Note that link order matters!
index a3f699646b3420b5a67ebf2315f4aac03de3d7f6..df6cfca77ee46b94040adb0517e1165a5a193b12 100644 (file)
@@ -19,7 +19,7 @@
 #include <asm/sal.h>
 #include <asm/meminit.h>
 #include <asm/fpswa.h>
-#include <xen/compile.h>
+#include <xen/version.h>
 #include <xen/acpi.h>
 
 #include <asm/dom_fw.h>
@@ -353,7 +353,8 @@ dom_fw_fake_acpi(struct domain *d, struct fake_acpi_tables *tables)
        strcpy(xsdt->oem_id, "XEN");
        strcpy(xsdt->oem_table_id, "Xen/ia64");
        strcpy(xsdt->asl_compiler_id, "XEN");
-       xsdt->asl_compiler_revision = (XEN_VERSION<<16)|(XEN_SUBVERSION);
+       xsdt->asl_compiler_revision = (xen_major_version() << 16) |
+               xen_minor_version();
 
        xsdt->table_offset_entry[0] = dom_pa((unsigned long) fadt);
        tables->madt_ptr = dom_pa((unsigned long) madt);
@@ -367,7 +368,8 @@ dom_fw_fake_acpi(struct domain *d, struct fake_acpi_tables *tables)
        strcpy(fadt->oem_id, "XEN");
        strcpy(fadt->oem_table_id, "Xen/ia64");
        strcpy(fadt->asl_compiler_id, "XEN");
-       fadt->asl_compiler_revision = (XEN_VERSION<<16)|(XEN_SUBVERSION);
+       fadt->asl_compiler_revision = (xen_major_version() << 16) |
+               xen_minor_version();
 
        strncpy(facs->signature, FACS_SIG, 4);
        facs->version = 1;
@@ -413,7 +415,8 @@ dom_fw_fake_acpi(struct domain *d, struct fake_acpi_tables *tables)
        strcpy(dsdt->oem_id, "XEN");
        strcpy(dsdt->oem_table_id, "Xen/ia64");
        strcpy(dsdt->asl_compiler_id, "XEN");
-       dsdt->asl_compiler_revision = (XEN_VERSION<<16)|(XEN_SUBVERSION);
+       dsdt->asl_compiler_revision = (xen_major_version() << 16) |
+               xen_minor_version();
 
        /* Trivial namespace, avoids ACPI CA complaints */
        tables->aml[0] = 0x10; /* Scope */
@@ -454,7 +457,8 @@ dom_fw_fake_acpi(struct domain *d, struct fake_acpi_tables *tables)
        strcpy(madt->header.oem_id, "XEN");
        strcpy(madt->header.oem_table_id, "Xen/ia64");
        strcpy(madt->header.asl_compiler_id, "XEN");
-       madt->header.asl_compiler_revision = (XEN_VERSION<<16)|(XEN_SUBVERSION);
+       madt->header.asl_compiler_revision = (xen_major_version() << 16) |
+               xen_minor_version();
 
        /* An LSAPIC entry describes a CPU.  */
        for (i = 0; i < MAX_VIRT_CPUS; i++) {
index b4c7401e5cd4c4e65bb7d235ae94735fd5aa743c..25c3c854b831594e81067ffac6630ffc229f76ee 100644 (file)
@@ -30,7 +30,7 @@
 #include <asm/processor.h>
 #include <xen/event.h>
 #include <xen/console.h>
-#include <xen/compile.h>
+#include <xen/version.h>
 #include <xen/elf.h>
 #include <asm/pgalloc.h>
 #include <asm/offsets.h>  /* for IA64_THREAD_INFO_SIZE */
@@ -1069,7 +1069,8 @@ int construct_dom0(struct domain *d,
                panic("can't allocate start info page");
        si = page_to_virt(start_info_page);
        memset(si, 0, PAGE_SIZE);
-       sprintf(si->magic, "xen-%i.%i-ia64", XEN_VERSION, XEN_SUBVERSION);
+       sprintf(si->magic, "xen-%i.%i-ia64",
+               xen_major_version(), xen_minor_version());
        si->nr_pages     = max_pages;
        si->flags = SIF_INITDOMAIN|SIF_PRIVILEGED;
 
index 2fcab3ea145d7f2cfaa4e11f383a72a30da1416a..eccc8bb34939c02cd2268c8008cf77fa6b552abb 100644 (file)
@@ -13,7 +13,7 @@
 #include <xen/mm.h>
 #include <public/version.h>
 #include <xen/gdbstub.h>
-#include <xen/compile.h>
+#include <xen/version.h>
 #include <xen/console.h>
 #include <xen/domain.h>
 #include <xen/serial.h>
@@ -547,11 +547,13 @@ printk("num_online_cpus=%d, max_cpus=%d\n",num_online_cpus(),max_cpus);
 void arch_get_xen_caps(xen_capabilities_info_t info)
 {
     char *p=info;
+    int major = xen_major_version();
+    int minor = xen_minor_version();
 
-    p += sprintf(p,"xen-%d.%d-ia64 ", XEN_VERSION, XEN_SUBVERSION);
+    p += sprintf(p,"xen-%d.%d-ia64 ", major, minor);
 
     if (vmx_enabled)
-        p += sprintf(p,"hvm-%d.%d-ia64 ", XEN_VERSION, XEN_SUBVERSION);
+        p += sprintf(p,"hvm-%d.%d-ia64 ", major, minor);
 
     *(p-1) = 0;
 
index 1b22c2a7fb1966fd10e2c615297428e1d3e10811..4fd5b0b5715a19b9f5503daa56652ae779ea4b3d 100644 (file)
@@ -22,7 +22,7 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/multiboot.h>
-#include <xen/compile.h>
+#include <xen/version.h>
 #include <xen/spinlock.h>
 #include <xen/serial.h>
 #include <xen/time.h>
@@ -976,9 +976,9 @@ multiboot_info_t __init *boot_of_init(
 
     of_printf("%s\n", "---------------------------------------------------");
     of_printf("OF: Xen/PPC version %d.%d%s (%s@%s) (%s) %s\n",
-              XEN_VERSION, XEN_SUBVERSION, XEN_EXTRAVERSION,
-              XEN_COMPILE_BY, XEN_COMPILE_DOMAIN,
-              XEN_COMPILER, XEN_COMPILE_DATE);
+              xen_major_version(), xen_minor_version(), xen_extra_version(),
+              xen_compile_by(), xen_compile_domain(),
+              xen_compiler(), xen_compile_date());
 
     of_printf("%s args: 0x%lx 0x%lx 0x%lx 0x%lx 0x%lx\n"
             "boot msr: 0x%lx\n",
index dfe51f62cde7b07039f1a94a77d47c3e36f3f0c3..89f68dae1bd8ae4f9ea384cbb5c8a7c40a7c16c7 100644 (file)
@@ -25,7 +25,7 @@
 #include <xen/init.h>
 #include <xen/ctype.h>
 #include <xen/iocap.h>
-#include <xen/compile.h>
+#include <xen/version.h>
 #include <asm/processor.h>
 #include <asm/papr.h>
 #include "oftree.h"
@@ -153,7 +153,7 @@ int construct_dom0(struct domain *d,
     printk("xen_start_info: %p\n", si);
 
     sprintf(si->magic, "xen-%i.%i-powerpc%d%s",
-            XEN_VERSION, XEN_SUBVERSION, BITS_PER_LONG, "HV");
+            xen_major_version(), xen_minor_version(), BITS_PER_LONG, "HV");
     si->flags = SIF_PRIVILEGED | SIF_INITDOMAIN;
 
     si->shared_info = ((ulong)d->shared_info) - rma;
index 59cb8d80d256fff9e0f471854aba6611e82d3a1c..597786845148463fed773e115dd2b7c5d5d9d8d1 100644 (file)
@@ -21,7 +21,6 @@
 #include <xen/config.h>
 #include <xen/init.h>
 #include <xen/lib.h>
-#include <xen/compile.h>
 #include <asm/mpic.h>
 #include "mpic_init.h"
 #include "oftree.h"
index 6178a1fabea5a046ff6b76a6c8e3a4e6715b966f..5905423590c60563da5bf324047f5397475a8d0f 100644 (file)
@@ -21,7 +21,7 @@
 #include <xen/config.h>
 #include <xen/lib.h>
 #include <xen/sched.h>
-#include <xen/compile.h>
+#include <xen/version.h>
 #include <public/xen.h>
 #include "of-devtree.h"
 
@@ -420,7 +420,7 @@ static ofdn_t ofd_xen_props(void *m, struct domain *d, start_info_t *si)
         ofd_prop_add(m, n, "name", &path[1], sizeof (path) - 1);
 
         xl = snprintf(xen, sizeof (xen), "Xen-%d.%d%s",
-                XEN_VERSION, XEN_SUBVERSION, XEN_EXTRAVERSION);
+                xen_major_version(), xen_minor_version(), xen_extra_version());
         ASSERT(xl < sizeof (xen));
         ofd_prop_add(m, n, "version", xen, xl + 1);
 
index 8948c27313b9b6520621ee2f17d39d76a458b88d..e1945faa2799af498cb3dca69c5fa95762550f91 100644 (file)
@@ -22,7 +22,7 @@
 #include <xen/lib.h>
 #include <xen/console.h>
 #include <public/xen.h>
-#include <xen/compile.h>
+#include <xen/version.h>
 #include <xen/sched.h>
 
 void show_registers(struct cpu_user_regs *regs)
@@ -32,7 +32,7 @@ void show_registers(struct cpu_user_regs *regs)
     console_start_sync();
     
     printk("----[ Xen-%d.%d%s     ]----\n",
-           XEN_VERSION, XEN_SUBVERSION, XEN_EXTRAVERSION);
+           xen_major_version(), xen_minor_version(), xen_extra_version());
     printk("CPU: %08x   DOMID: %08x\n",
            smp_processor_id(), current->domain->domain_id);
     printk("pc %016lx msr %016lx\n"
index 8c89877b08675e55e7f4afa6e7abe50624996c92..78180898b7e95b1123b52cb34bd314ffe96d17f3 100644 (file)
@@ -15,7 +15,7 @@
 #include <xen/elf.h>
 #include <xen/kernel.h>
 #include <xen/domain.h>
-#include <xen/compile.h>
+#include <xen/version.h>
 #include <xen/iocap.h>
 #include <xen/bitops.h>
 #include <asm/regs.h>
@@ -726,7 +726,8 @@ int construct_dom0(struct domain *d,
     si->nr_pt_frames = nr_pt_pages;
     si->mfn_list     = vphysmap_start;
     sprintf(si->magic, "xen-%i.%i-x86_%d%s",
-            XEN_VERSION, XEN_SUBVERSION, BITS_PER_LONG, xen_pae ? "p" : "");
+            xen_major_version(), xen_minor_version(),
+            BITS_PER_LONG, xen_pae ? "p" : "");
 
     /* Write the phys->machine and machine->phys table entries. */
     for ( pfn = 0; pfn < d->tot_pages; pfn++ )
index d49073ce3ed73a0572785af8463f897313c33fab..dbf49094951d5a08bb75391e754969a1523ce56c 100644 (file)
@@ -12,7 +12,7 @@
 #include <xen/trace.h>
 #include <xen/multiboot.h>
 #include <xen/domain_page.h>
-#include <xen/compile.h>
+#include <xen/version.h>
 #include <xen/gdbstub.h>
 #include <xen/percpu.h>
 #include <public/version.h>
@@ -612,30 +612,32 @@ void __init __start_xen(multiboot_info_t *mbi)
 void arch_get_xen_caps(xen_capabilities_info_t info)
 {
     char *p = info;
+    int major = xen_major_version();
+    int minor = xen_minor_version();
 
 #if defined(CONFIG_X86_32) && !defined(CONFIG_X86_PAE)
 
-    p += sprintf(p, "xen-%d.%d-x86_32 ", XEN_VERSION, XEN_SUBVERSION);
+    p += sprintf(p, "xen-%d.%d-x86_32 ", major, minor);
     if ( hvm_enabled )
-        p += sprintf(p, "hvm-%d.%d-x86_32 ", XEN_VERSION, XEN_SUBVERSION);
+        p += sprintf(p, "hvm-%d.%d-x86_32 ", major, minor);
 
 #elif defined(CONFIG_X86_32) && defined(CONFIG_X86_PAE)
 
-    p += sprintf(p, "xen-%d.%d-x86_32p ", XEN_VERSION, XEN_SUBVERSION);
+    p += sprintf(p, "xen-%d.%d-x86_32p ", major, minor);
     if ( hvm_enabled )
     {
-        p += sprintf(p, "hvm-%d.%d-x86_32 ", XEN_VERSION, XEN_SUBVERSION);
-        p += sprintf(p, "hvm-%d.%d-x86_32p ", XEN_VERSION, XEN_SUBVERSION);
+        p += sprintf(p, "hvm-%d.%d-x86_32 ", major, minor);
+        p += sprintf(p, "hvm-%d.%d-x86_32p ", major, minor);
     }
 
 #elif defined(CONFIG_X86_64)
 
-    p += sprintf(p, "xen-%d.%d-x86_64 ", XEN_VERSION, XEN_SUBVERSION);
+    p += sprintf(p, "xen-%d.%d-x86_64 ", major, minor);
     if ( hvm_enabled )
     {
-        p += sprintf(p, "hvm-%d.%d-x86_32 ", XEN_VERSION, XEN_SUBVERSION);
-        p += sprintf(p, "hvm-%d.%d-x86_32p ", XEN_VERSION, XEN_SUBVERSION);
-        p += sprintf(p, "hvm-%d.%d-x86_64 ", XEN_VERSION, XEN_SUBVERSION);
+        p += sprintf(p, "hvm-%d.%d-x86_32 ", major, minor);
+        p += sprintf(p, "hvm-%d.%d-x86_32p ", major, minor);
+        p += sprintf(p, "hvm-%d.%d-x86_64 ", major, minor);
     }
 
 #else
index 3774aa83c8dcc1d60761c3a590aac742579a8e46..ae18f654adbc040ce548ede98a3a8f6a1332f6b6 100644 (file)
@@ -1,6 +1,6 @@
 
 #include <xen/config.h>
-#include <xen/compile.h>
+#include <xen/version.h>
 #include <xen/domain_page.h>
 #include <xen/init.h>
 #include <xen/sched.h>
@@ -52,7 +52,7 @@ void show_registers(struct cpu_user_regs *regs)
     }
 
     printk("----[ Xen-%d.%d%s    %s ]----\n",
-           XEN_VERSION, XEN_SUBVERSION, XEN_EXTRAVERSION,
+           xen_major_version(), xen_minor_version(), xen_extra_version(),
            print_tainted(taint_str));
     printk("CPU:    %d\nEIP:    %04x:[<%08x>]",
            smp_processor_id(), fault_regs.cs, fault_regs.eip);
@@ -131,7 +131,7 @@ asmlinkage void do_double_fault(void)
     /* Find information saved during fault and dump it to the console. */
     tss = &init_tss[cpu];
     printk("*** DOUBLE FAULT: Xen-%d.%d%s    %s\n",
-           XEN_VERSION, XEN_SUBVERSION, XEN_EXTRAVERSION,
+           xen_major_version(), xen_minor_version(), xen_extra_version(),
            print_tainted(taint_str));
     printk("CPU:    %d\nEIP:    %04x:[<%08x>]",
            cpu, tss->cs, tss->eip);
index a5b7aef8587ea6b2092c836bed619254ca2d525a..3cae3e3fc37e161937d3ecdcdc54edd66c7f44cc 100644 (file)
@@ -1,6 +1,6 @@
 
 #include <xen/config.h>
-#include <xen/compile.h>
+#include <xen/version.h>
 #include <xen/init.h>
 #include <xen/sched.h>
 #include <xen/lib.h>
@@ -45,7 +45,7 @@ void show_registers(struct cpu_user_regs *regs)
     }
 
     printk("----[ Xen-%d.%d%s    %s ]----\n",
-           XEN_VERSION, XEN_SUBVERSION, XEN_EXTRAVERSION,
+           xen_major_version(), xen_minor_version(), xen_extra_version(),
            print_tainted(taint_str));
     printk("CPU:    %d\nRIP:    %04x:[<%016lx>]",
            smp_processor_id(), fault_regs.cs, fault_regs.rip);
@@ -128,7 +128,7 @@ asmlinkage void do_double_fault(struct cpu_user_regs *regs)
 
     /* Find information saved during fault and dump it to the console. */
     printk("*** DOUBLE FAULT: Xen-%d.%d%s    %s\n",
-           XEN_VERSION, XEN_SUBVERSION, XEN_EXTRAVERSION,
+           xen_major_version(), xen_minor_version(), xen_extra_version(),
            print_tainted(taint_str));
     printk("CPU:    %d\nRIP:    %04x:[<%016lx>]",
            cpu, regs->cs, regs->rip);
index f6bad03a1a14fa871579599af0ecfed9d3117a25..be3179afdcff68cb056c11b0c4c35eaadfada674 100644 (file)
@@ -21,6 +21,7 @@ obj-y += string.o
 obj-y += symbols.o
 obj-y += trace.o
 obj-y += timer.o
+obj-y += version.o
 obj-y += vsprintf.o
 obj-y += xmalloc.o
 
@@ -28,4 +29,4 @@ obj-$(perfc)       += perfc.o
 obj-$(crash_debug) += gdbstub.o
 
 # Object file contains changeset and compiler information.
-kernel.o: $(BASEDIR)/include/xen/compile.h
+version.o: $(BASEDIR)/include/xen/compile.h
index dc76a893a3c1bced3f9464405299b5041584d196..5c3069bb62fe971746546fd84159b8b924da7469 100644 (file)
@@ -8,7 +8,7 @@
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/errno.h>
-#include <xen/compile.h>
+#include <xen/version.h>
 #include <xen/sched.h>
 #include <xen/shadow.h>
 #include <xen/guest_access.h>
@@ -125,13 +125,13 @@ long do_xen_version(int cmd, XEN_GUEST_HANDLE(void) arg)
     {
     case XENVER_version:
     {
-        return (XEN_VERSION<<16) | (XEN_SUBVERSION);
+        return (xen_major_version() << 16) | xen_minor_version();
     }
 
     case XENVER_extraversion:
     {
         xen_extraversion_t extraversion;
-        safe_strcpy(extraversion, XEN_EXTRAVERSION);
+        safe_strcpy(extraversion, xen_extra_version());
         if ( copy_to_guest(arg, (char *)extraversion, sizeof(extraversion)) )
             return -EFAULT;
         return 0;
@@ -140,10 +140,10 @@ long do_xen_version(int cmd, XEN_GUEST_HANDLE(void) arg)
     case XENVER_compile_info:
     {
         struct xen_compile_info info;
-        safe_strcpy(info.compiler,       XEN_COMPILER);
-        safe_strcpy(info.compile_by,     XEN_COMPILE_BY);
-        safe_strcpy(info.compile_domain, XEN_COMPILE_DOMAIN);
-        safe_strcpy(info.compile_date,   XEN_COMPILE_DATE);
+        safe_strcpy(info.compiler,       xen_compiler());
+        safe_strcpy(info.compile_by,     xen_compile_by());
+        safe_strcpy(info.compile_domain, xen_compile_domain());
+        safe_strcpy(info.compile_date,   xen_compile_date());
         if ( copy_to_guest(arg, &info, 1) )
             return -EFAULT;
         return 0;
@@ -176,7 +176,7 @@ long do_xen_version(int cmd, XEN_GUEST_HANDLE(void) arg)
     case XENVER_changeset:
     {
         xen_changeset_info_t chgset;
-        safe_strcpy(chgset, XEN_CHANGESET);
+        safe_strcpy(chgset, xen_changeset());
         if ( copy_to_guest(arg, (char *)chgset, sizeof(chgset)) )
             return -EFAULT;
         return 0;
diff --git a/xen/common/version.c b/xen/common/version.c
new file mode 100644 (file)
index 0000000..6afa128
--- /dev/null
@@ -0,0 +1,56 @@
+#include <xen/compile.h>
+
+const char *xen_compile_date(void)
+{
+    return XEN_COMPILE_DATE;
+}
+
+const char *xen_compile_time(void)
+{
+    return XEN_COMPILE_TIME;
+}
+
+const char *xen_compile_by(void)
+{
+    return XEN_COMPILE_BY;
+}
+
+const char *xen_compile_domain(void)
+{
+    return XEN_COMPILE_DOMAIN;
+}
+
+const char *xen_compile_host(void)
+{
+    return XEN_COMPILE_HOST;
+}
+
+const char *xen_compiler(void)
+{
+    return XEN_COMPILER;
+}
+
+unsigned int xen_major_version(void)
+{
+    return XEN_VERSION;
+}
+
+unsigned int xen_minor_version(void)
+{
+    return XEN_SUBVERSION;
+}
+
+const char *xen_extra_version(void)
+{
+    return XEN_EXTRAVERSION;
+}
+
+const char *xen_changeset(void)
+{
+    return XEN_CHANGESET;
+}
+
+const char *xen_banner(void)
+{
+    return XEN_BANNER;
+}
index e63753d42927f7ce0aaa57a95ae7f1b0b6ea3124..ded9a94cc16e490f98e9ed89c4c37671909fc598 100644 (file)
@@ -1,6 +1,3 @@
 obj-y += console.o
 obj-y += ns16550.o
 obj-y += serial.o
-
-# Object file contains changeset and compiler information.
-console.o: $(BASEDIR)/include/xen/compile.h
index c9a56771c5d63c81c1c5100fe15120b893ecd073..f5ca219f9c552da74dbcec0c3ac17a5f3ab42f34 100644 (file)
@@ -8,7 +8,7 @@
 
 #include <stdarg.h>
 #include <xen/config.h>
-#include <xen/compile.h>
+#include <xen/version.h>
 #include <xen/init.h>
 #include <xen/lib.h>
 #include <xen/errno.h>
@@ -488,14 +488,14 @@ void init_console(void)
     serial_set_rx_handler(sercon_handle, serial_rx);
 
     /* HELLO WORLD --- start-of-day banner text. */
-    printk(XEN_BANNER);
+    printk(xen_banner());
     printk(" http://www.cl.cam.ac.uk/netos/xen\n");
     printk(" University of Cambridge Computer Laboratory\n\n");
     printk(" Xen version %d.%d%s (%s@%s) (%s) %s\n",
-           XEN_VERSION, XEN_SUBVERSION, XEN_EXTRAVERSION,
-           XEN_COMPILE_BY, XEN_COMPILE_DOMAIN,
-           XEN_COMPILER, XEN_COMPILE_DATE);
-    printk(" Latest ChangeSet: %s\n\n", XEN_CHANGESET);
+           xen_major_version(), xen_minor_version(), xen_extra_version(),
+           xen_compile_by(), xen_compile_domain(),
+           xen_compiler(), xen_compile_date());
+    printk(" Latest ChangeSet: %s\n\n", xen_changeset());
     set_printk_prefix("(XEN) ");
 
     if ( opt_sync_console )
diff --git a/xen/include/xen/version.h b/xen/include/xen/version.h
new file mode 100644 (file)
index 0000000..81a3c7d
--- /dev/null
@@ -0,0 +1,16 @@
+#ifndef __XEN_VERSION_H__
+#define __XEN_VERSION_H__
+
+const char *xen_compile_date(void);
+const char *xen_compile_time(void);
+const char *xen_compile_by(void);
+const char *xen_compile_domain(void);
+const char *xen_compile_host(void);
+const char *xen_compiler(void);
+unsigned int xen_major_version(void);
+unsigned int xen_minor_version(void);
+const char *xen_extra_version(void);
+const char *xen_changeset(void);
+const char *xen_banner(void);
+
+#endif /* __XEN_VERSION_H__ */